<?php

class Produto {

    public $files = '../produto/';

    function selecionarTudo($admin, $cat_id) {
        $con = new mysqli();
        $con = Connection::getConnection();

        $stmt = $con->prepare("SELECT produto_id, produto_nome, produto_valor, produto_descricao, categoria_id FROM produto WHERE categoria_id = ? ORDER BY produto_nome ASC");
        $stmt->bind_param('s', $cat_id);
        $stmt->execute();
        $stmt->store_result();
        $count = $stmt->num_rows;

        if ($count > 0) {
            $stmt->bind_result($produto_id, $produto_nome, $produto_valor, $produto_descricao, $categoria_id);
            echo '<table class="dados">';
            echo '<thead>';
            echo '  <tr>';
            echo '  <th></th>';
            echo '  <th>Ref</th>';
            echo '  <th>Nome</th>';
            echo '  <th>Valor</th>';
            echo '  <th>Descricao</th>';

            if (isset($_SESSION['logado']) && $_SESSION['logado'] == 1 && $admin) {
                echo '  <th></th>';
            }

            echo '  </tr>';
            echo '</thead>';
            echo '  <tbody>';
            while ($stmt->fetch()) {
                echo '<tr>';
                echo '  <td>';
                echo '      <a target="_blank" href="produto/' . $produto_id . '/foto.jpg"><img style="width: 50px" src="produto/' . $produto_id . '/small/foto.jpg"/></a>';
                echo '  </td>';
                echo '  <td>';
                echo $produto_id;
                echo '  </td>';
                echo '  <td>';
                echo $produto_nome;
                echo '  </td>';
                echo '  <td>';
                echo $produto_valor;
                echo '  </td>';
                echo '  <td>';
                echo $produto_descricao;
                echo '  </td>';
                if (isset($_SESSION['logado']) && $_SESSION['logado'] == 1 && $admin) {
                    echo '  <td><label onclick="excluir(' . $produto_id . ')" class="excluir">';
                    echo 'excluir';
                    echo '  </label></td">';
                }
                echo '</tr>';
            }
            echo '  </tbody>';
            echo '</table>';
        } else {
            echo 'Nenhum registro encontrado.';
        }

        $con->close();
    }

    function excluir() {
        $con = new mysqli();
        $con = Connection::getConnection();

        $produto_id = $_POST['produto_id'];
        if (empty($produto_id)) {
            header("HTTP/1.0 400 ID inválido");
            return;
        }

        $stmt = $con->prepare("DELETE FROM produto WHERE produto_id = ?");
        $stmt->bind_param('i', $produto_id);
        $stmt->execute();
        $count = $stmt->affected_rows;

        if ($count == 0) {
            header("HTTP/1.0 500 Falha ao deletar o registro. Contate o administrador.");
        } else {
            $dir = $this->files . $produto_id . '/';
            $files = glob($dir . "/*");
            if (count($files) > 0) {
                foreach ($files as $file) {
                    unlink($file);
                }
            }

            $dir = $this->files . $produto_id . '/small/';
            $files = glob($dir . "/*");
            if (count($files) > 0) {
                foreach ($files as $file) {
                    unlink($file);
                }
            }

            rmdir($this->files . $produto_id . '/small/');
            rmdir($this->files . $produto_id . '/');
        }

        $con->close();
    }

    function adicionar() {
        include ("../classes/Imagem.php");

        $con = new mysqli();
        $con = Connection::getConnection();

        $produto_descricao = $_POST['produto_descricao'];
        if (empty($produto_descricao)) {
            echo ("HTTP/1.0 400 A descrição do produto não pode estar em branco.");
            return;
        }

        $categoria_id = $_POST['categoria_id'];
        $categoria_nome = $_POST['categoria_nome'];
        if (empty($categoria_id) || empty($categoria_nome)) {
            echo ("HTTP/1.0 400 A categoria não pode estar em branco.");
            return;
        }

        $produto_valor = $_POST['produto_valor'];
        if (empty($produto_valor)) {
            echo ("HTTP/1.0 400 O valor do produto não pode estar em branco.");
            return;
        }

        $produto_nome = $_POST['produto_nome'];
        if (empty($produto_nome)) {
            echo ("HTTP/1.0 400 O nome do produto não pode estar em branco.");
            return;
        }

        $file = $_FILES['file']['tmp_name'];

        if (empty($file)) {
            echo ("HTTP/1.0 400 Nenhuma foto selecionada.");
            return;
        }

        $stmt = $con->prepare("INSERT INTO produto (produto_nome, produto_valor, produto_descricao, categoria_id) VALUES (?, ?, ?, ?)");
        $stmt->bind_param('ssss', $produto_nome, $produto_valor, $produto_descricao, $categoria_id);

        $stmt->execute();
        $count = $stmt->affected_rows;
        $produto_id = $stmt->insert_id;

        $con->close();

        if ($count == 0) {
            echo ("HTTP/1.0 500 Falha ao inserir o registro. Contate o administrador.");
        } else {
            mkdir($this->files . $produto_id . '/');
            mkdir($this->files . $produto_id . '/small/');

            $small_largura = 450;
            $small_altura = 300;

            $size = 1024;

            $tmp_name = $file;
            $destinoImgBig = $this->files . $produto_id . '/foto.jpg';
            move_uploaded_file($tmp_name, $destinoImgBig);

            $oImg = new m2brimagem($destinoImgBig);
            $oImg->redimensiona($small_largura, $small_altura, 'crop');
            $oImg->grava($this->files . $produto_id . '/small/foto.jpg');

            // Pega os tamanhos originais
            $infoimg = getimagesize($destinoImgBig);

            // Cria uma taxa proporcional para conversão
            $tax = $infoimg[0] / $infoimg[1];
            if ($tax < 1) {
                $newWidth = round($size * $tax);
                $newHeight = $size;
            } else {
                $newWidth = $size;
                $newHeight = round($size / $tax);
            }

            $oImgBig = new m2brimagem($destinoImgBig);
            $oImgBig->redimensiona($newWidth, $newHeight);
            $oImgBig->grava($destinoImgBig);

            header('Location: http://' . $_SERVER['SERVER_NAME'] . '/admin/produtos.php?ref=' . $categoria_id . '&nome=' . $categoria_nome);
        }
    }

    function selecionarParaUsuario() {
        $con = new mysqli();
        $con = Connection::getConnection();

        $cat_id = $_POST['categoria'];

        $stmt = $con->prepare("SELECT produto_id, produto_nome, produto_valor, produto_descricao FROM produto WHERE categoria_id = ? ORDER BY produto_nome ASC");
        $stmt->bind_param('s', $cat_id);
        $stmt->execute();
        $stmt->store_result();
        $count = $stmt->num_rows;

        if ($count > 0) {
            $stmt->bind_result($produto_id, $produto_nome, $produto_valor, $produto_descricao);
            while ($stmt->fetch()) {
                echo '<div class="conteudo-texto">';
                echo '   <div>Ref. ' . $produto_id . '</div>';
                echo '   <div class="imagem">';

                $URLfiles = '../produto/';
                $URLthumb = '../produto/';

                $dir = $URLfiles . $produto_id . '/';
                $dirMin = $URLthumb . $produto_id . '/';
                $files = glob($dir . "/*");

                if (count($files) > 0) {
                    foreach ($files as $file) {
                        if (is_file($file)) {
                            $url = explode('/', $file);
                            $file_name = $url[count($url) - 1];
                            echo '       <a rel="group" href="admin/produto/' . $produto_id . '/' . $file_name . '">';
                            echo '           <img style="max-width: 190px; max-height: 150px" src="admin/produto/' . $produto_id . '/small/' . $file_name . '"/>';
                            echo '       </a>';
                        }
                    }
                } else {
                    echo '           <img class="sem-foto" src="_recursos/imagens/sem_foto.png"/>';
                }
                echo '   </div>';
                echo '   <div>' . $produto_nome . '</div>';
                echo '   <hr/>';
                echo '   <div clas="valor">R$' . $produto_valor . '</div>';
                echo '   <hr/>';
                echo '   <div>' . $produto_descricao . '</div>';
                echo '</div>';
            }
        } else {
            echo 'Nenhum produto cadastrado.';
        }

        $con->close();
    }

    function selecionarParaIndex() {
        $con = new mysqli();
        $con = Connection::getConnection();

        $stmt = $con->prepare("SELECT produto_id, produto_nome, produto_valor, produto_descricao FROM produto ORDER BY produto_nome ASC");
        $stmt->execute();
        $stmt->store_result();
        $count = $stmt->num_rows;

        $index = 0;

        if ($count > 0) {
            $stmt->bind_result($produto_id, $produto_nome, $produto_valor, $produto_descricao);

            while ($stmt->fetch()) {
                if ($index == 0 || $index % 3 == 0) {
                    if ($index > 0) {
                        echo '</div>';
                    }

                    echo '<div class="produtos">';
                }

                echo '<div class="conteudo-texto">';
                echo '   <div>Ref. ' . $produto_id . '</div>';
                echo '   <div class="imagem">';

                $URLfiles = 'admin/produto/';
                $URLthumb = 'admin/produto/';

                $dir = $URLfiles . $produto_id . '/';
                $dirMin = $URLthumb . $produto_id . '/small/';
                $files = glob($dir . "/*");

                if (count($files) > 0) {
                    foreach ($files as $file) {
                        if (is_file($file)) {
                            $url = explode('/', $file);
                            $file_name = $url[count($url) - 1];
                            echo '       <a rel="group" href="' . $dir . $file_name . '">';
                            echo '           <img style="max-width: 190px; max-height: 150px" src="' . $dirMin . $file_name . '"/>';
                            echo '       </a>';
                        }
                    }
                } else {
                    echo '           <img class="sem-foto" src="_recursos/imagens/sem_foto.png"/>';
                }
                echo '   </div>';
                echo '   <div>' . $produto_nome . '</div>';
                echo '   <hr/>';
                echo '   <div clas="valor">R$' . $produto_valor . '</div>';
                echo '   <hr/>';
                echo '   <div>' . $produto_descricao . '</div>';
                echo '</div>';

                $index++;
            }

            echo '</div>';

            echo '<script>$("a[rel=group]").fancybox();</script>';
        } else {
            echo 'Nenhum produto cadastrado.';
        }

        $con->close();
    }

}

?>
